<?php

class Application_Model_HomeMapper
{
	protected $_dbTable;
 
    public function setDbTable($dbTable)
    {
        if (is_string($dbTable)) {
        	//Creamos la instancia
            $dbTable = new $dbTable();
        }
        if (!$dbTable instanceof Zend_Db_Table_Abstract) {
            throw new Exception('Invalid table data gateway provided');
        }
        $this->_dbTable = $dbTable;
        return $this;
    }
 
    public function getDbTable()
    {
        if (null === $this->_dbTable) {
            $this->setDbTable('Application_Model_DbTable_Home');
        }
        return $this->_dbTable;
    }
    
	public function save(Application_Model_Home $home)
    {
        $data = array('id_home'  			 => $home->getId_home(),
            		  'destacado_titulo'   	 => $home->getDestacado_titulo(),
            		  'destacado_subtitulo'  => $home->getDestacado_subtitulo(),
        			  'destacado_contenido'	 => $home->getDestacado_contenido(),
        			  'testimonio_titulo'	 => $home->getTestimonio_titulo(),
        			  'testimonio_contenido' => $home->getTestimonio_contenido(),
        			  'principal_titulo'	 => $home->getPrincipal_titulo(),
        			  'principal_subtitulo'	 => $home->getPrincipal_subtitulo(),
        			  'principal_contenido'	 => $home->getPrincipal_contenido(),
					  'texto_promo_titulo'	 => $home->getTexto_promo_titulo(),
        			  'texto_promo_contenido'=> $home->getTexto_promo_contenido(),
        			  'imagen_promo'		 => $home->getImagen_promo(),
        			  'imagen_tipo'	 		 => $home->getImagen_tipo()        
        );
        if (null === ($id = $home->getId_home())) {
            unset($data['id_home']);
            $this->getDbTable()->insert($data);
        } else {
            $this->getDbTable()->update($data, array('id_home = ?' => $id));
        }
    }
    
 	public function find($id, Application_Model_Home $home)
    {
    	$result = $this->getDbTable()->find($id);
        if (0 == count($result)) {
            return;
        }
        
        $row = $result->current();
        $home->setId_home($row->id_home)
        	 ->setDestacado_titulo($row->destacado_titulo)
        	 ->setDestacado_subtitulo($row->destacado_subtitulo)
        	 ->setDestacado_contenido($row->destacado_contenido)
        	 ->setTestimonio_titulo($row->testimonio_titulo)
        	 ->setTestimonio_contenido($row->testimonio_contenido)
        	 ->setPrincipal_titulo($row->principal_titulo)
        	 ->setPrincipal_subtitulo($row->principal_subtitulo)
        	 ->setPrincipal_contenido($row->principal_contenido)
        	 ->setTexto_promo_titulo($row->texto_promo_titulo)
        	 ->setTexto_promo_contenido($row->texto_promo_contenido)
        	 ;
    }
 	
    public function delete($id)
    {
    	$this->getDbTable()->delete("id_clientes=$id");
    }
}

